package com.moss.cloud.common.core.utils;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;

import java.util.List;

/**
 * JSON工具类
 *
 * @author 瑾年
 * @date 2023年7月25日
 */
public class JSONUtil {
    /**
     * JSON字符串转JAVA对象
     *
     * @param jsonStr
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T toJavaBean(String jsonStr, Class<T> clazz) {
        return JSON.parseObject(jsonStr, clazz);
    }

    /**
     * JSON对象转JAVA对象
     *
     * @param json
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T toJavaBean(JSONObject json, Class<T> clazz) {
        return json.toJavaObject(clazz);
    }

    /**
     * JSON字符串转JAVA集合
     *
     * @param jsonStr
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> List<T> toCollection(String jsonStr, Class<T> clazz) {
        return JSON.parseArray(jsonStr, clazz);
    }

    /**
     * JSONArray转JAVA集合
     *
     * @param json
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> List<T> toCollection(JSONArray json, Class<T> clazz) {
        return json.toJavaList(clazz);
    }

    /**
     * JSON字符串转JSON数组
     *
     * @param jsonStr
     * @return
     */
    public static JSONArray toJsonArray(String jsonStr) {
        return JSON.parseArray(jsonStr);
    }
}
